1. Field of the Invention
This invention is related to the fields of programming languages and database management systems for arbitrary computing applications including database applications, artificial intelligent applications, knowledge-based reasoning applications, and web-based applications.
2. Description of the Prior Art
Many database applications were written in programming languages in the 1960s and 1970s, and are still in operation. The use of database management system (DBMS) came to database application software in and around the 1970s. It significantly improves the productivity in software development and maintenance. The data models, i.e., the mathematical roots of DBMSs, square off programming languages by three essential characteristics: 1) a data model offers set-oriented operations to update and query data, 2) a program always terminates at arbitrary input, i.e. computer stops, and 3) a data model is declarative, i.e., it allows programmers to specify what a program is in terms of business requirements, but don't necessarily specify how it will be implemented.
The traditional data models, i.e., the relational data model and the hierarchical data model, cannot express all desired business data. Hierarchical data, for example, can be folded into a relation, but its containment relationships cannot be captured by the relational data model with the expressive power of the relational algebra (Reference: A. V. Aho and J. D. Ullman, “Universality of Data Retrieval Languages”, Conference Record of the Sixth Annual ACM Symposium on Principles of Programming Languages, San Antonio, Taxes, January, 1979, page 110-120). Another example would be relationships among the vertices in a directed graph, (e.g., is there a path from A to B?), which cannot be captured in both the relational data model and the hierarchical data model. As a result, database applications continuously require intense, though relieved, development and maintenance work, which could be avoided if a more expressive data model were realized and leveraged.
The EP (Enterprise-Participant) data model is semantically equivalent to a class of total recursive functions (Reference: K. H. Xu, J. Zhang, S. Gao, R. R. McKeown, “Let a Data Model be a Class of Total Recursive Functions”, the International Conference on Theoretical and Mathematical Foundations of Computer Science—TMFCS, 2010, page 15-22). The equivalence says that programmers are not allowed to construct an application program that may not terminate on an input. At the same time, it says mathematically that any meaningful application programs, i.e., those with the semantics falling into the class of total recursive functions, can be expressed in the EP data model.
The EP data model is a data model because it possesses the three above-mentioned essential characteristics. To demonstrate the significance of the EP data model being both a data model and the first language semantically equivalent to a class of total recursive functions, an objective view was suggested on easiness (References: K. H. Xu, J. Zhang, S. Gao, “Assessing Easiness with Froglingo”, the Second International Conference on the Application of Digital Information and Web Technologies, 2009, page 847-849, and K. H. Xu, J. Zhang, S. Gao, “An Assessment on the Easiness of Computer Languages”, the Journal of Information Technology Review, May, 2010, page 67-71). This view contends that: 1) a data model is easier to use than a programming language in the development and maintenance of those applications expressible in the data model, 2) if one data model is more expressive than another data model, the former is easier than the latter in the development and maintenance of the applications where a programming language is involved, and 3) a programming language, by incorporating with a total-recursive-equivalent data model, is the easiest to use in software development and maintenance. Froglingo, a programming language comprising the EP (Enterprise Participant) data model, was therefore concluded to be the easiest programming language.
Calling Froglingo the easiest programming language to use implies that Froglingo is a monolith that consolidates the multiple software components of traditional software architecture (Reference: K. H. Xu, J. Zhang, S. Gao, “Froglingo, A Monolithic Alternative to DBMS, Programming Language, Web Server, and File System”, the Fifth International Conference on Evaluation of Novel Approaches to Software Engineering, 2010). Secondly, it implies that Froglingo is a novel approach to many challenges facing traditional technologies in the fields of artificial intelligence and knowledge management (Reference: K. H. Xu, J. Zhang, S. Gao, “Approximating Knowledge of Cooking in Higher-order Functions, a Case Study of Froglingo”, the Workshop Proceedings of the Eighteenth International Conference on Case-Based Reasoning—ICCBR, 2010, page 219-228).
The U.S. Pat. No. 5,995,958 “System and Method for Storing and Managing Functions” issued to Kevin H. Xu and in the U.S. Pat. No. 6,643,638 “System and Method for Storing and Computing Data and Functions” have already been granted for the inventions related to the technologies in Froglingo. However, there are some new developments from the latest research. This patent application is filed to cover the new inventions out of the development.